package arrayProblem;

import java.util.ArrayList;
import java.util.List;

/**
 * 119. 杨辉三角 II
 * 给定一个非负索引 rowIndex，返回「杨辉三角」的第 rowIndex 行。
 * 在「杨辉三角」中，每个数是它左上方和右上方的数的和。
 * 输入: rowIndex = 3
 * 输出: [1,3,3,1]
 */
public class PascalTiangleTwo {
    public static void main(String[] args) {
        PascalTiangleTwo pascalTiangleTwo = new PascalTiangleTwo();
        System.out.println(pascalTiangleTwo.getRow(3));
    }


    public List<Integer> getRow(int rowIndex) {
        List<List<Integer>> list = new ArrayList<List<Integer>>();
        for (int i = 0; i <=rowIndex; i++) {
            List<Integer> list1 = new ArrayList<Integer>();
            for (int j = 0; j <= i; j++) {
                if (j == 0 || j == i) {
                    list1.add(1);
                } else {
                    list1.add(list.get(i - 1).get(j - 1) + list.get(i - 1).get(j));
                }
            }
            list.add(list1);
        }
        return list.get(rowIndex);
    }
}
